/**
 * 运势结果页面
 * @file 显示运势分析结果
 */

// 防止Trace未定义错误
if (typeof Trace === 'undefined') {
  if (typeof global !== 'undefined') {
    global.Trace = {
      addTask: function() {},
      newTask: function() {}
    };
  } else {
    var Trace = {
      addTask: function() {},
      newTask: function() {}
    };
  }
}

const util = require('../../utils/util.js');

Page({
  /**
   * 页面的初始数据
   */
  data: {
    birthDate: '',
    birthTime: '',
    today: '',
    fortuneResult: null,
    isLoading: true
  },

  /**
   * 生命周期函数--监听页面加载
   * @param {Object} options 页面参数
   */
  onLoad: function (options) {
    try {
      if (options && options.birthDate) {
        // 获取出生日期和时辰
        const birthDate = options.birthDate || '';
        const birthTime = options.birthTime ? decodeURIComponent(options.birthTime) : '';

        // 设置页面数据
        this.setData({
          birthDate: birthDate,
          birthTime: birthTime,
          today: util.formatTime(new Date(), 'YYYY年MM月DD日')
        });

        // 计算运势
        this.calculateFortuneResult(birthDate, birthTime);
      } else {
        wx.showToast({
          title: '参数错误',
          icon: 'error'
        });
        setTimeout(() => {
          wx.navigateBack();
        }, 1500);
      }
    } catch (error) {
      console.error('结果页加载错误:', error);
      wx.showToast({
        title: '加载失败',
        icon: 'error'
      });
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }
  },

  /**
   * 计算运势结果
   * @param {string} birthDate 出生日期
   * @param {string} birthTime 出生时辰
   */
  calculateFortuneResult: function (birthDate, birthTime) {
    try {
      // 模拟数据加载
      setTimeout(() => {
        // 模拟运势计算结果
        const isMercuryRetrograde = util.isMercuryRetrograde ? util.isMercuryRetrograde() : Math.random() > 0.7;
        
        const results = {
          overallLuck: Math.floor(Math.random() * 100), // 综合运势指数
          isRetrograde: isMercuryRetrograde, // 是否在水逆期间
          luckItems: [ // 各方面运势
            { name: '事业运', score: Math.floor(Math.random() * 100) },
            { name: '财运', score: Math.floor(Math.random() * 100) },
            { name: '健康运', score: Math.floor(Math.random() * 100) },
            { name: '人际运', score: Math.floor(Math.random() * 100) }
          ],
          suggestions: isMercuryRetrograde ? [
            '避免签订重要合同和协议',
            '谨慎处理金钱往来',
            '检查邮件和信息内容再发送',
            '出行前多确认行程和票务信息'
          ] : [
            '适合开展新项目和计划',
            '可以进行重要的沟通和洽谈',
            '适合购置新物品和投资',
            '人际交往会有良好收获'
          ]
        };

        this.setData({
          fortuneResult: results,
          isLoading: false
        });
      }, 2000);
    } catch (error) {
      console.error('计算运势结果错误:', error);
      wx.showToast({
        title: '计算失败',
        icon: 'error'
      });
      this.setData({
        isLoading: false
      });
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }
  },

  /**
   * 返回首页
   */
  goBack: function () {
    wx.navigateBack({
      fail: () => {
        wx.redirectTo({
          url: '/pages/index/index'
        });
      }
    });
  },

  /**
   * 分享给朋友
   * @returns {Object} 分享配置
   */
  onShareAppMessage: function () {
    return {
      title: '我的今日水逆运势分析，快来看看你的！',
      path: '/pages/index/index'
    };
  }
}) 